home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / OpenGL 1.0 SDK / Headers / tk.h < prev   
Encoding:
C/C++ Source or Header  |  1999-05-18  |  5.7 KB  |  259 lines  |  [TEXT/CWIE]

  1. /*
  2. ** Copyright 1994-1998, Conix Graphics.
  3. ** All Rights Reserved.
  4. */
  5.  
  6. #ifndef TK_INCLUDED
  7. #define TK_INCLUDED
  8.  
  9.  
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13.  
  14.  
  15. #include "gl.h"
  16. #include "glu.h"
  17. #include "agl.h"
  18.  
  19. /*
  20. ** ToolKit Window Types
  21. */
  22.  
  23. #define TK_RGB           0
  24. #define TK_INDEX       1
  25.  
  26. #define TK_SINGLE       0
  27. #define TK_DOUBLE       2
  28.  
  29. #define TK_DIRECT       0
  30. #define TK_INDIRECT       4
  31. #define TK_ACCUM       8
  32. #define TK_ALPHA       16
  33. #define TK_DEPTH       32
  34. #define TK_STENCIL       64
  35. #define TK_OVERLAY       128
  36. #define TK_UNDERLAY       256
  37. #define TK_AUX         512
  38. #define TK_FULLSCREEN  1024
  39.  
  40. /*
  41. ** Display Mode Selection Criteria
  42. */
  43.  
  44. enum {
  45.     TK_USE_ID = 1,
  46.     TK_EXACT_MATCH,
  47.     TK_MINIMUM_CRITERIA
  48. };
  49.  
  50. /* 
  51. ** Window Masks
  52. */
  53.  
  54. #define TK_IS_RGB(x)        (((x) & TK_INDEX) == 0)
  55. #define TK_IS_INDEX(x)        (((x) & TK_INDEX) != 0)
  56. #define TK_IS_SINGLE(x)        (((x) & TK_DOUBLE) == 0)
  57. #define TK_IS_DOUBLE(x)        (((x) & TK_DOUBLE) != 0)
  58. #define TK_IS_DIRECT(x)        (((x) & TK_INDIRECT) == 0)
  59. #define TK_IS_INDIRECT(x)    (((x) & TK_INDIRECT) != 0)
  60. #define TK_HAS_ACCUM(x)        (((x) & TK_ACCUM) != 0)
  61. #define TK_HAS_ALPHA(x)        (((x) & TK_ALPHA) != 0)
  62. #define TK_HAS_DEPTH(x)        (((x) & TK_DEPTH) != 0)
  63. #define TK_HAS_OVERLAY(x)    (((x) & TK_OVERLAY) != 0)
  64. #define TK_HAS_UNDERLAY(x)    (((x) & TK_UNDERLAY) != 0)
  65. #define TK_HAS_STENCIL(x)    (((x) & TK_STENCIL) != 0)
  66.  
  67. /*
  68. ** Event Status
  69. */
  70.  
  71. #define    TK_LEFTBUTTON        1
  72. #define    TK_RIGHTBUTTON        2
  73. #define    TK_MIDDLEBUTTON        4
  74.  
  75. #define    TK_SHIFT        1
  76. #define    TK_CONTROL        2
  77.  
  78. /* 
  79. ** Key Codes
  80. */
  81.  
  82. #define TK_RETURN        0x0D
  83. #define TK_ESCAPE        0x1B
  84. #define TK_SPACE        0x20
  85. #define TK_LEFT            0x25
  86. #define TK_UP            0x26
  87. #define TK_RIGHT        0x27
  88. #define TK_DOWN            0x28
  89. #define TK_A            'A'
  90. #define TK_B            'B'
  91. #define TK_C            'C'
  92. #define TK_D            'D'
  93. #define TK_E            'E'
  94. #define TK_F            'F'
  95. #define TK_G            'G'
  96. #define TK_H            'H'
  97. #define TK_I            'I'
  98. #define TK_J            'J'
  99. #define TK_K            'K'
  100. #define TK_L            'L'
  101. #define TK_M            'M'
  102. #define TK_N            'N'
  103. #define TK_O            'O'
  104. #define TK_P            'P'
  105. #define TK_Q            'Q'
  106. #define TK_R            'R'
  107. #define TK_S            'S'
  108. #define TK_T            'T'
  109. #define TK_U            'U'
  110. #define TK_V            'V'
  111. #define TK_W            'W'
  112. #define TK_X            'X'
  113. #define TK_Y            'Y'
  114. #define TK_Z            'Z'
  115. #define TK_a            'a'
  116. #define TK_b            'b'
  117. #define TK_c            'c'
  118. #define TK_d            'd'
  119. #define TK_e            'e'
  120. #define TK_f            'f'
  121. #define TK_g            'g'
  122. #define TK_h            'h'
  123. #define TK_i            'i'
  124. #define TK_j            'j'
  125. #define TK_k            'k'
  126. #define TK_l            'l'
  127. #define TK_m            'm'
  128. #define TK_n            'n'
  129. #define TK_o            'o'
  130. #define TK_p            'p'
  131. #define TK_q            'q'
  132. #define TK_r            'r'
  133. #define TK_s            's'
  134. #define TK_t            't'
  135. #define TK_u            'u'
  136. #define TK_v            'v'
  137. #define TK_w            'w'
  138. #define TK_x            'x'
  139. #define TK_y            'y'
  140. #define TK_z            'z'
  141. #define TK_0            '0'
  142. #define TK_1            '1'
  143. #define TK_2            '2'
  144. #define TK_3            '3'
  145. #define TK_4            '4'
  146. #define TK_5            '5'
  147. #define TK_6            '6'
  148. #define TK_7            '7'
  149. #define TK_8            '8'
  150. #define TK_9            '9'
  151.  
  152. /*
  153. ** Color Macros
  154. */
  155. enum {
  156.     TK_BLACK = 0,
  157.     TK_RED,
  158.     TK_GREEN,
  159.     TK_YELLOW,
  160.     TK_BLUE,
  161.     TK_MAGENTA,
  162.     TK_CYAN,
  163.     TK_WHITE
  164. };
  165.  
  166.  
  167. extern float tkRGBMap[8][3];
  168.  
  169. #define TK_SETCOLOR(x, y) (TK_IS_RGB((x)) ? \
  170.                    glColor3fv(tkRGBMap[(y)]) : glIndexf((y)))
  171.  
  172. /*
  173. ** RGB Image Structure
  174. */
  175.  
  176. typedef struct _TK_RGBImageRec {
  177.     GLint sizeX, sizeY;
  178.     GLubyte *data;
  179. } TK_RGBImageRec;
  180.  
  181. /*
  182. ** Prototypes
  183. */
  184.  
  185. extern void tkInitDisplayMode(GLenum);
  186. extern void tkInitPosition(int, int, int, int);
  187. extern GLenum tkInitWindow(char *);
  188. extern void tkCloseWindow(void);
  189. extern void tkQuit(void);
  190.  
  191. extern GLenum tkSetWindowLevel(GLenum);
  192. extern void tkSwapBuffers(void);
  193.  
  194. extern void tkExec(void);
  195. extern void tkExposeFunc(void (*)(int, int));
  196. extern void tkReshapeFunc(void (*)(int, int));
  197. extern void tkDisplayFunc(void (*)(void));
  198. extern void tkKeyDownFunc(GLenum (*)(int, GLenum));
  199. extern void tkMouseDownFunc(GLenum (*)(int, int, GLenum));
  200. extern void tkMouseUpFunc(GLenum (*)(int, int, GLenum));
  201. extern void tkMouseMoveFunc(GLenum (*)(int, int, GLenum));
  202. extern void tkIdleFunc(void (*)(void));
  203.  
  204. extern int tkGetColorMapSize(void);
  205. extern void tkGetMouseLoc(int *, int *);
  206. extern void tkGetSystem(GLenum, void *);
  207.  
  208. extern AGLPixelFormat tkGetPixelFmt(void);
  209.  
  210. extern void tkSetOneColor(int, float, float, float);
  211. extern void tkSetFogRamp(int, int);
  212. extern void tkSetGreyRamp(void);
  213. extern void tkSetRGBMap(int, float *);
  214. extern void tkSetOverlayMap(int, float *);
  215.  
  216. extern void tkNewCursor(GLint, GLubyte *, GLubyte *, GLenum, GLenum, GLint, GLint);
  217. extern void tkSetCursor(GLint);
  218.  
  219. extern TK_RGBImageRec *tkRGBImageLoad(char *);
  220.  
  221. extern GLenum tkCreateStrokeFont(GLuint);
  222. extern GLenum tkCreateOutlineFont(GLuint);
  223. extern GLenum tkCreateFilledFont(GLuint);
  224. extern GLenum tkCreateBitmapFont(GLuint);
  225. extern void tkDrawStr(GLuint, char *);
  226.  
  227. extern void tkWireSphere(GLuint, GLdouble);
  228. extern void tkSolidSphere(GLuint, GLdouble);
  229. extern void tkWireCube(GLuint, GLdouble);
  230. extern void tkSolidCube(GLuint, GLdouble);
  231. extern void tkWireBox(GLuint, GLdouble, GLdouble, GLdouble);
  232. extern void tkSolidBox(GLuint, GLdouble, GLdouble, GLdouble);
  233. extern void tkWireTorus(GLuint, GLdouble, GLdouble);
  234. extern void tkSolidTorus(GLuint, GLdouble, GLdouble);
  235. extern void tkWireCylinder(GLuint, GLdouble, GLdouble);
  236. extern void tkSolidCylinder(GLuint, GLdouble, GLdouble);
  237. extern void tkWireCone(GLuint, GLdouble, GLdouble);
  238. extern void tkSolidCone(GLuint, GLdouble, GLdouble);
  239. extern void tkWireIcosahedron(GLuint, GLdouble radius);
  240. extern void tkSolidIcosahedron(GLuint, GLdouble radius);
  241. extern void tkWireOctahedron(GLuint, GLdouble radius);
  242. extern void tkSolidOctahedron(GLuint, GLdouble radius);
  243. extern void tkWireTetrahedron(GLuint, GLdouble radius);
  244. extern void tkSolidTetrahedron(GLuint, GLdouble radius);
  245. extern void tkWireDodecahedron(GLuint, GLdouble radius);
  246. extern void tkSolidDodecahedron(GLuint, GLdouble radius);
  247.  
  248. extern TK_RGBImageRec *tkRGBImageLoad(char *fileName);
  249.  
  250. extern double tkNow(void);
  251.  
  252.  
  253. #ifdef __cplusplus
  254. }
  255. #endif
  256.  
  257.  
  258. #endif
  259.